<?php


namespace App\Service\Weapp;




use PhpParser\Node\Expr\Array_;

interface WeappInterface
{

    /**
     *
     * openid	string	用户唯一标识
     * session_key	string	会话密钥
     * unionid	string	用户在开放平台的唯一标识符，在满足 UnionID 下发条件的情况下会返回，详见 UnionID 机制说明。
     * errcode	number	错误码
     * errmsg	string	错误信息
     *
     * Create by Peter
     * 2019/09/18 17:04:24
     * Email:904801074@qq.com
     * @param string $code
     * @return WeappInterface
     */
    public function setSession(string $code);


    public function getAccessToken():string;

    public function toArray():array;

    /**
     *
     * unionid	string	用户唯一标识，调用成功后返回
     * errcode	number	错误码
     * errmsg	string	错误信息
     *
     * Create by Peter
     * 2019/09/18 17:03:32
     * Email:904801074@qq.com
     * @param string $openid
     * @return WeappInterface
     */
    public function getUnionId(string $openid):WeappInterface;

    /**
     *
     * 解密
     *
     * Create by Peter
     * 2019/09/19 09:13:02
     * Email:904801074@qq.com
     * @param $encryptedData
     * @param $iv
     * @param $sessionKey
     * @return mixed
     */
    public function decrypt($encryptedData,$iv,$sessionKey);


    public function getSession($openid):string;


    /**
     * 获取sessionKey、openid等信息
     * Create by Peter
     * 2019/12/04 16:18:36
     * Email:904801074@qq.com
     * @param $code
     * @return array
     */
    public function requestSessionKey($code):array;
}
